package gae.testjig.client;

import com.google.gwt.user.client.rpc.AsyncCallback;

/**
 * The async counterpart of <code>GaeTestJigService</code>.
 */
public interface GaeTestJigServiceAsync {

	void initiateChannelOpen(ClientChannelId clientChannelId, AsyncCallback<String> callback);
	void sendEchoChannel(ClientChannelId clientChannelId, AsyncCallback<Void> callback);
	void getTestStatus(String testId, AsyncCallback<ClientTestStats> callback);
	void startTest1(ClientChannelId clientChannelId, AsyncCallback<String> callback);
	void startTest2(ClientChannelId clientChannelId, AsyncCallback<String> callback);
	void startTest3(ClientChannelId clientChannelId, AsyncCallback<String> callback);

	void jdoTest1(ClientChannelId clientChannelId, AsyncCallback<Void> callback);
	void jdoTest2(ClientChannelId clientChannelId, AsyncCallback<Void> callback);

	void doConstraintTest(ClientChannelId clientChannelId, String ownerName, String seatId, AsyncCallback<Boolean> callback);
	void resetConstraintTest(ClientChannelId clientChannelId, String[] ownerNames, String seatId, AsyncCallback<Void> callback);
	void fetchSeatInfo(ClientChannelId clientChannelId, String seatId, AsyncCallback<Void> callback);
	void doRace(ClientChannelId clientChannelId, String[] ownerName, String seatId, AsyncCallback<Void> callback);
	void doRaceObjectify(ClientChannelId clientChannelId, String[] ownerName, String seatId, AsyncCallback<Void> callback);

}
